--封装
--实现Object 模拟创建新对象

Object ={age =18};

function Object:new() --这里相当于为Object声明了一个自带Objcet参数的函数 函数名叫做new
	--声明本地对象
	local newObj ={}
	--self == Object表 把类自身的方法和属性设置为元表的__index元方法
	self.__index = self;

	--这样后子表设置元表之后 如果子表没有相关属性就会去元表找
	setmetatable(newObj,self)

	
	return newObj;
end

--这样就返回出来了一个新表
local myObj =Object:new();
print(myObj.age);

--赋值也会是在新表里面赋值

myObj.age =100;
print(myObj.age); --100
print(Object.age); --还是18
